package es.aqua.aquac.il.helper;

import java.util.ArrayList;
import java.util.List;

import es.aqua.aquac.bl.interfaces.FacturaBS;
import es.aqua.aquac.exception.GeneralBusinessException;
import es.aqua.aquac.exception.GeneralPLException;
import es.aqua.aquac.il.domain.Factura;

public class FacturaHelper {
	/**
	 * Servicio.
	 */
	private FacturaBS facturaBS;

	/**
	 * @return the facturaBS
	 */
	public FacturaBS getFacturaBS() {
		return facturaBS;
	}

	/**
	 * @param facturaBS
	 *            the facturaBS to set
	 */
	public void setFacturaBS(FacturaBS facturaBS) {
		this.facturaBS = facturaBS;
	}

	/**
	 * Carga la lista de Facturas.
	 * 
	 * @return List<Factura>
	 */
	public List<Factura> cargarFacturas() throws GeneralPLException {
		List<Factura> lstFactura = new ArrayList<Factura>();

		try {
			lstFactura = facturaBS.findAll();

		} catch (GeneralBusinessException e) {
			throw new GeneralPLException(e);
		}
		return lstFactura;
	}

	/**
	 * Inserta Factura.
	 * 
	 * @return List<Factura>
	 */
	public Factura insertarFactura(Factura factura) throws GeneralPLException {

		try {
			factura = facturaBS.insert(factura);

		} catch (GeneralBusinessException e) {
			throw new GeneralPLException(e);
		}
		return factura;
	}

	public Factura buscarFacturaById(Integer idFactura) throws GeneralPLException {

		try {

			Factura factura = new Factura();

			if (idFactura != null) {
				factura = facturaBS.findById(idFactura);
			}

			return factura;
		} catch (GeneralBusinessException e) {
			throw new GeneralPLException(e);
		}
	}
}
